package com.xnyzc.lhy.order.service.order;

import com.xnyzc.lhy.common.entity.Qd;
import com.xnyzc.lhy.order.entity.order.OaCOrder;
import com.xnyzc.lhy.order.entity.system.OaSysBillRules;
import com.xnyzc.lhy.order.entity.user.OaCUser;
import com.xnyzc.lhy.order.entity.user.OaDUser;
import com.xnyzc.lhy.order.entity.user.OaDUserInfo;
import com.xnyzc.lhy.order.entity.vehicle.OaDDriverVehicle;

import java.math.BigDecimal;
import java.util.List;

/**
 * @Description netty 服务间调用获取订单相关
 * @Author 刘举
 * @Date 2019/8/16 20:35
 **/
public interface IOaOrderCommonService {


    /**
     * 获取总费用
     *
     * @param totalFee
     * @param baseFee
     * @param userType
     * @param drawRatio
     * @return
     */
    BigDecimal getTotalFee(BigDecimal totalFee, BigDecimal baseFee, Integer userType, BigDecimal drawRatio);

    /**
     * 获取计费规则费用
     *
     * @param rulesId
     * @param tag
     * @return
     */
    OaSysBillRules getBillRulesStartFee(String rulesId, String tag);


    /**
     * 判断是否评价过
     *
     * @param userId
     * @param type
     * @param orderNo
     * @return
     */
    Integer isEvaluation(Long userId, Integer type, String orderNo);

    /**
     * 获取历史轨迹
     *
     * @param orderNo
     * @return
     */
    List<Qd> getHistroyGpsList(String orderNo);

    /**
     * 获取订单信息
     *
     * @param orderNo
     * @return
     */
    OaCOrder getOrderInfo(String orderNo);

    /**
     * 获取用户信息
     *
     * @param userId
     * @return
     */
    OaCUser getUserInfo(Long userId);


    /**
     * 获取司机用户信息
     *
     * @param driverId
     * @return
     */
    OaDUser getOaDUser(Long driverId);

    /**
     * 获取司机用户信息详情
     *
     * @param driverId
     * @return
     */
    OaDUserInfo getOaDUserInfo(Long driverId);

    /**
     *  获取司机车辆信息
     * @param driverId
     * @param isUse
     * @return
     */
    OaDDriverVehicle getOaDDriverVehicleInfo(Long driverId, Integer isUse);
}
